﻿/***************************
 * Author：peiyang
 * DateTime：
 * Description：<Description>
 * Copyright：臭皮匠工作室@2020
 **/

using System.Collections.Generic;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using Cpjit.SunnyPaine.Toolkit.RabbitMQ.Enums;

namespace Cpjit.SunnyPaine.Toolkit.RabbitMQ.Model
{
    /// <summary>
    /// 消费者对象。
    /// </summary>
    public class ConsumerMetaObject
    {
        /// <summary>
        /// AMQP消息通道模型。
        /// </summary>
        public IModel Channel { get; set; }

        /// <summary>
        /// 工作模式。
        /// </summary>
        public WorkMode Mode { get; set; }

        /// <summary>
        /// 交换器名称。如果不基于交换器的工作模式，则交换器名称为空。
        /// </summary>
        public string ExchangeName { get; set; }

        /// <summary>
        /// 队列名称。
        /// </summary>
        public string QueueName { get; set; }

        /// <summary>
        /// 是否自动应答。
        /// </summary>
        public bool AutoAck { get; set; } = true;

        /// <summary>
        /// 附加参数。
        /// </summary>
        public IDictionary<string, object> Arguments { get; set; }

        /// <summary>
        /// 消费者。
        /// </summary>
        public EventingBasicConsumer Consumer { get; set; }
    }
}